package com.boot2.core.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

import java.util.Map;

/**
 * @author zhangweilin
 * @description: 模板工具类
 * @date 2018/11/4
 */
@Component
public class TemplatesUtil {

    public static TemplateEngine templateEngine;

    @Autowired
    public void setTemplateEngine(TemplateEngine templateEngine) {
        TemplatesUtil.templateEngine = templateEngine;
    }

    /**
     * @param dataMap        渲染数据原
     * @param templatesName  模板名
     * @param templateEngine 模板操作类
     * @return
     */
    public static String createTemplates(Map<String, Object> dataMap, String templatesName, TemplateEngine templateEngine) {
        //context 对象用于注入要在模板上渲染的信息
        Context context = new Context();
        context.setVariables(dataMap);
        String emailText = templateEngine.process(templatesName, context);
        //返回模板源代码 String 类型
        return emailText;
    }

    /**
     *
     * @param dataMap
     * @param templatesName
     * @return
     */
    public static String createTemplates(Map<String, Object> dataMap, String templatesName) {
        return createTemplates(dataMap, templatesName, templateEngine);
    }

}
